package com.bluefoxyu.common;

import java.io.Serializable;

/**
 * Invocation类用于封装RPC（远程过程调用）的调用信息。
 * 这个类实现了Serializable接口，以便可以被序列化，从而可以在网络传输或持久化时使用。
 */
public class Invocation implements Serializable {

    private String interfaceName;
    private String methodName;
    private Class[] parameterTypes;
    private Object[] parameters;

    /** 
    * <p>
    * description: 构造方法，用于初始化Invocation对象。
    * </p>
    *
    * @param interfaceName 要调用的远程接口的全限定名
    * @param methodName    要调用的方法名称
    * @param parameterTypes 方法参数的类型数组
    * @param parameters    方法参数的值数组
    * @author: bluefoxyu
    * @date: 2025-05-26 21:45:32 
    */ 
    public Invocation(String interfaceName, String methodName, Class[] parameterTypes, Object[] parameters) {
        this.interfaceName = interfaceName;
        this.methodName = methodName;
        this.parameterTypes = parameterTypes;
        this.parameters = parameters;
    }

    public String getInterfaceName() {
        return interfaceName;
    }

    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }

    public String getMethodName() {
        return methodName;
    }

    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    public Class[] getParameterTypes() {
        return parameterTypes;
    }

    public void setParameterTypes(Class[] parameterTypes) {
        this.parameterTypes = parameterTypes;
    }

    public Object[] getParameters() {
        return parameters;
    }

    public void setParameters(Object[] parameters) {
        this.parameters = parameters;
    }
}
